perm filename TMP.TEX[WEB,ALS]2 blob
sn#663226 filedate 1982-06-14 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 \input webhdr
C00008 ENDMK
C⊗;
\input webhdr
% Here is TEX material that gets inserted after \input webhdr
\def\hang{\hangindent 3em\ \unskip\!}
\chcode@=13 \def@{\penalty999\ } % ties words together
\def\TEX{T\hbox{\hskip-.1667em\lower.424ex\hbox{E}\hskip-.125em X}}
\font b=cmr9 \def\mc{\:b} % medium caps for names like PASCAL
\def\PASCAL{{\mc PASCAL}}
\def\(#1){} % this is used to make module names sort themselves better
\def\9#1{} % this is used for sort keys in the index
\font D=cmtt at 15truept % font used in the title line below (only)
\font E=cmr7 at 14truept % font used in the title line below (only)
\def\title{TF\lowercase{to}PL}
\def\contentspagenumber{101}
\def\topofcontents{\topspace 0pt
\vfill
\ctrline{\:E The {\:D TFtoPL} processor}
\vskip 15pt
\ctrline{(Version 1, January 1982)}
\vfill}
\def\botofcontents{\vfill
\ctrline{\ragged0\spaceskip0pt\xspaceskip0pt\baselineskip9pt
\hbox par 5in{\:bThe preparation of this report
was supported in part by the National Science
Foundation under grants IST-7921977 and MCS-7723738;
by Office of Naval Research grant N00014-81-K-0330;
and by the IBM Corporation. `\TEX' is a registered
trademark of the American Mathematical Society.}}}
\setcount0 \contentspagenumber
Preliminary analysis of problem in splitting TFtoPL.PAS
I am not certain that the 8k limit in IBM PASCAL applies to the MAIN program
(Susan is out of town and no one else seems to know). If
it does, then introducing 3 new procedure calls seems advisable.
$$\vbox{\halign{#\qquad\hfill⊗#\qquad\hfill\cr
Lines⊗\quad Procedure or Module\cr
\cr
16⊗\\{initialize};\cr
176⊗All other procedures\cr
961⊗Present main program\cr
\cr
195⊗\\{organize}; (procedure would involve no for loops)\cr
46⊗\X20:Read the whole input file\X;\cr
139⊗\X21:Set subfile sizes \\{lh}, \\{bc}, $\ldotss$, \\{np}\X;\cr
10⊗\X23:Compute the base addresses\X;\cr
\cr
235⊗\\{do\_things}; (procedure would involve i in for loops)\cr
81⊗\X48:Do the header\X;\cr
60⊗\X58:Do the parameters\X;\cr
94⊗\X62:Check the \\{fix\_word} entries\X;\cr
\cr
143⊗(these involve i,c,r and could be left in main)\cr
129⊗\X65:Do the ligatures and kerns\X;\cr
14⊗\X75:Check the extensible recipes\X;\cr
\cr
200⊗\\{do\_characters}; (procedure would involve k in for loop)\cr
200⊗\X76:Do the characters\X;\cr}}$$
\vfill
Preliminary analysis of problem in splitting PLtoTF.PAS. Two sections
appear to need splitting into 2 procedures each, and one other section
must be made into a procedure. The ``for'' loops are scattered through
this material so it is not easy to leave them in any one place. There is
also no very even place to split either large segment because of
rather large case statements.
$$\vbox{\halign{#\qquad\hfill⊗#\qquad\hfill\cr
Lines⊗\quad Procedure or Module\cr
\cr
86⊗\\{initialize};\cr
\cr
506⊗\X47:Enter all of the names and their equivalents\X;\cr
131⊗\\{name\_enter}; (\X47:Enter all of the names...\X;)\cr
375⊗\\{param\_enter}; (\X48:Enter the parameter names\X;)\cr
\cr
465⊗\X81:Read all the input\X; (This involves a large case statement)\cr
316⊗\\{all\_input}; (\X81:Read all the input\X;)\cr
149⊗\\{char\_info\_list}; (\X101:Read charaacter info list\X;)\cr
\cr
257⊗\\{corr\_and\_check}; (\X108:Correct and check the information\X;)\cr
\cr
122⊗\X119:Do the output\X;\cr}}$$
\vfill
\end
In PLtoTF, the for loops in the main program are:
for c: p.11,l.17,25,31 p.12,l.88,148
for g: p.11,l.118
for j: p.12,l.83
for q: p.12,l.129
for lig_ptr: p.11,l.113, p.12,l.139
for krn_ptr: p.12,l.145
for par_ptr: p.12,l.158